﻿Imports System.Data
Imports System.Data.SqlClient
Imports VN.INS.DL.DALC

Partial Class Siste
    Inherits System.Web.UI.MasterPage

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then          
            'seteamos texto en barra titulo del explorador
            Page.Title = "Sistema de Monitoreo"
            Sesion(Session("Nombre"))
            Sesion(Session("DESCRIPCION"))
            Sesion(Session("ABREVIATURA"))
            Sesion(Session("perfil"))
            lblUsuario.Text = Session("Nombre")
            lblAnhioActivo.Text = Session("Año")

            lblPerfil.Text = "(" + Session("DESCRIPCION") + " " + Session("ABREVIATURA") + ")"
            'Traemos los datos de de datos.
            Dim dtMenuItems As New DataTable
            Dim daMenu As menu
            'llenamos el datatable
            daMenu = New menu()
            dtMenuItems = daMenu.opcionmenu(Session("perfil"))
            For Each drMenuItem As Data.DataRow In dtMenuItems.Rows
                'esta condicion indica q son elementos padre.
                If drMenuItem("ID_MENU").Equals(drMenuItem("PADRE_ID")) Then
                    Dim mnuMenuItem As New MenuItem
                    mnuMenuItem.Value = drMenuItem("ID_MENU").ToString
                    mnuMenuItem.Text = drMenuItem("DESCRIPCION").ToString
                    'agregamos el Ítem al menú
                    Me.mnuPrincipal.Items.Add(mnuMenuItem)
                    'hacemos un llamado al metodo recursivo encargado de generar el árbol del menú.
                    AddMenuItem(mnuMenuItem, dtMenuItems)
                End If
            Next
        End If
    End Sub
    Private Sub AddMenuItem(ByRef mnuMenuItem As MenuItem, ByVal dtMenuItems As Data.DataTable)
        'recorremos cada elemento del datatable para poder determinar cuales son elementos hijos
        'del menuitem dado pasado como parametro ByRef.
        For Each drMenuItem As Data.DataRow In dtMenuItems.Rows
            If drMenuItem("padre_id").ToString.Equals(mnuMenuItem.Value) AndAlso _
            Not drMenuItem("id_menu").Equals(drMenuItem("padre_id")) Then
                Dim mnuNewMenuItem As New MenuItem
                mnuNewMenuItem.Value = drMenuItem("id_menu").ToString
                mnuNewMenuItem.Text = drMenuItem("descripcion").ToString
                mnuNewMenuItem.NavigateUrl = drMenuItem("url").ToString
                'Agregamos el Nuevo MenuItem al MenuItem que viene de un nivel superior.
                mnuMenuItem.ChildItems.Add(mnuNewMenuItem)
                'llamada recursiva para ver si el nuevo menú ítem aun tiene elementos hijos.
                AddMenuItem(mnuNewMenuItem, dtMenuItems)
            End If
        Next
    End Sub

    'Motodo para que cuando se pierda la sesion redirecciona al login
    Public Sub Sesion(ByVal session As Object)
        Dim lost As String
        lost = ""
        If (session Is Nothing) Then lost = "1" Else lost = "0"
        If lost = "1" Then
            Response.Redirect("s_login.aspx?Error=1")
        End If
    End Sub

    Protected Sub mnuPrincipal_MenuItemClick(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs) Handles mnuPrincipal.MenuItemClick
        If Len(e.Item.Text) > 6 Then
            If e.Item.Text.Substring(0, 3) = "Año" Then
                Session("Año") = e.Item.Text.Substring(4)
                Response.Redirect(Session("form"))
            End If
        ElseIf e.Item.Text = "Inicio" Then
            Response.Redirect("Inicio.aspx")
        End If
    End Sub
End Class